<?php
namespace Admin\Controller;
use Think\Controller;
class AdminController extends CommonController 
{
    // 管理员列表
    public function adminlist(){
       $admin=D('admin');
        $where=1;
        if($kw=I('kw')){
            $where.=' AND username LIKE "%'.$kw.'%"';
        }
        $count=$admin->where($where)->count();// 查询满足要求的总记录数
        $Page=new \Think\Page($count,5);// 实例化分页类 传入总记录数和每页显示的记录数(25)
        $show= $Page->show();// 分页显示输出
        $list = $admin->field('a.id,a.username,b.rolename')->alias('a')->join('LEFT JOIN tp_role b ON a.roleid=b.id')->where($where)->limit($Page->firstRow.','.$Page->listRows)->select();
        $this->assign('list',$list);// 赋值数据集
        $this->assign('page',$show);// 赋值分页输出
        $this->assign('count',$count);// 赋值分页输出

        $this->display();
    }
    // 添加管理员
    public function adminadd(){
        if(IS_POST){
            $admin=D('admin');
            if($admin->create()){
                $admin->password=md5($admin->password);
                if($admin->add()){
                    $this->assign('jumpUrl','javascript:parent.layer.closeAll();');

                    $this->success('添加管理员成功！');
                }else{
                    $this->error('添加管理员失败');
                }
            }else{
                $this->error($admin->getError());
            }

            return;
        }
        $role=D('role');
        $roles=$role->select();
        $this->assign('roles',$roles);
        $this->display();
    }
    // 修改管理员
    public function adminedit(){
        $admin=D('admin');
        if(IS_POST){
            if($admin->create()){
                $admin->password=md5($admin->password);
                if($admin->save()){
                    $this->assign('jumpUrl','javascript:parent.layer.closeAll();');
                    $this->success('修改管理员成功！');
                }else{
                    $this->error('修改管理员失败');
                }
            }else{
                $this->error($admin->getError());
            }

            return;
        }
        $id=I('id');
        $adminres=$admin->find($id);
        $this->assign('adminres',$adminres);
         $role=D('role');
        $roles=$role->select();
        $this->assign('roles',$roles);
        $this->display();
    }
    // 删除管理员
    public function admindel(){
        $id=I('id');
        $admin=D('admin');
        if($id==1){
            $this->error('超级管理员无法删除！');
        }
        if($admin->delete($id)){

            $this->success('删除管理员成功！');
        }else{
            $this->error('删除管理员失败！');
        }
    }
    // 批量删除管理员
    public function adminbdel(){
    $ids=I('ids');
    
    $admin=D('admin');
    $ids=implode(',', $ids);
    if($admin->delete($ids)){
        $this->success('批量删除管理员成功！');
    }else{
        $this->error('批量删除管理员失败！');
    }
    }
    // 权限列表
    public function permissionlist()
    {
        $pri=D('privilege');
        $pris=$pri->pritree();
        $this->assign('pris',$pris);
        $this->display();
    }
    // 添加权限
    public function permissionadd()
    {
        $pri=D('privilege');
        if(IS_POST){
            if($pri->create()){
                if($pri->add()){
                    $this->success('添加权限成功！');
                }else{
                    $this->error('添加权限失败！');
                }
            }else{
                $this->error($pri->getError());
            }

            return;
        }

        $pris=$pri->pritree();
        $this->assign('pris',$pris);
        $this->display();
    }
    // 编辑权限
    public function permissionedit()
    {
        $pri=D('privilege');
        if(IS_POST){
            if($pri->create()){
                if($pri->save()){
                    $this->assign('jumpUrl','javascript:parent.layer.closeAll();');                   
                    $this->success('修改权限成功！');
                }else{
                    $this->error('修改权限失败！');
                }
            }else{
                $this->error($pri->getError());
            }

            return;
        }
        $id=I('id');
        $prires=$pri->find($id);
        $this->assign('prires',$prires);
        $pris=$pri->pritree();
        $this->assign('pris',$pris);
        $this->display();
    }

    // 删除权限
    public function permissiondel()
    {
        $pri=D('privilege');
        $id=I('id');
        if($pri->delete($id))
        {
            $this->success('成功删除权限！');
        }else
        {
            $this->error('删除权限失败！');
        }
    }
    // 批量删除权限
    public function permissionbdel()
    {
        $pri=D('privilege');
        $ids=I('ids');
        $ids=implode(',', $ids);  //1,2,3,4
        if($ids)
        {
            if($pri->delete($ids))
            {
                $this->success('批量删除权限成功！');
            }else
            {
                $this->error('批量删除权限失败！');
            }
        }else
        {
            $this->error('未选中任何内容！');
        }
    }
    // 角色列表
    public function rolelist(){
        $role=D('role');
        $where=1;
        if($kw=I('kw')){
            $where.=' AND rolename LIKE "%'.$kw.'%"';
        }
        $count=$role->where($where)->count();// 查询满足要求的总记录数
        $Page=new \Think\Page($count,3);// 实例化分页类 传入总记录数和每页显示的记录数(25)
        $show=$Page->show();// 分页显示输出
        $list =$role->field('a.*,GROUP_CONCAT(b.pri_name) pri_name')->alias('a')->join('LEFT JOIN tp_privilege b ON FIND_IN_SET(b.id,a.pri_id_list)')->where($where)->limit($Page->firstRow.','.$Page->listRows)->group('a.id')->select();
        $this->assign('list',$list);// 赋值数据集
        $this->assign('page',$show);// 赋值分页输出
        $this->assign('count',$count);// 赋值分页输出
        $this->display();
    }
    // 添加角色
    public function roleadd(){
        $role=D('role');
        if(IS_POST){
            if($role->create()){
                $role->pri_id_list=implode(',', $role->pri_id_list);
                if($role->add()){
                    $this->assign('jumpUrl','javascript:parent.layer.closeAll();');
                    $this->success('添加角色成功！');
                }else{
                    $this->error('添加角色失败！');
                }
            }else{
                $this->error($role->getError());
            }

            return;
        }
        $pri=D('privilege');
        $pris=$pri->pritree();
        $this->assign('pris',$pris);
        $this->display();
    }
    // 编辑角色
    public function roleedit(){
        $role=D('role');
        if(IS_POST){
            if($role->create()){
                $role->pri_id_list=implode(',', $role->pri_id_list);
                if($role->save()){
                    $this->success('修改角色成功！');
                }else{
                    $this->error('修改角色失败！');
                }
            }else{
                $this->error($role->getError());
            }

            return;
        }
        
        $id=I('id');
        $roleres=$role->find($id);
        $pri=D('privilege');
        $pris=$pri->pritree();
        $this->assign('pris',$pris);
        $this->assign('roleres',$roleres);
        $this->display();
    }
    // 删除角色
    public function roledel(){
        $id=I('id');
        $role=D('role');
        if($id==1){
            $this->error('超级管理员角色无法删除！');
        }
        if($role->delete($id)){
            $this->success('删除角色成功！');
        }else{
            $this->error('删除角色失败！');
        }
    }
    // 批量删除角色
    public function rolebdel(){
        $ids=I('ids');
        if($ids){
            
            $role=D('role');
            $ids=implode(',', $ids);
            if($role->delete($ids)){
                $this->success('批量删除角色成功！');
            }else{
                $this->error('批量删除角色失败！');
            }
        } 
    }


}